#ifndef VBOX_INCLUDE_VBOX_VMM_APIC_H
#define VBOX_INCLUDE_VBOX_VMM_APIC_H
#ifndef RT_WITHOUT_PRAGMA_ONCE
#pragma once
#endif

#include <VBox/types.h>
#include <VBox/apic.h> // root include path
struct PDMEDVREGCB; 

RT_C_DECLS_BEGIN

#ifdef VBOX_INCLUDE_vmm_pdmdev_h // TODO: rename
extern const PDMDEVREG g_DeviceAPIC;
#endif

// TODO:

#ifdef IN_RING3
VMMR3_INT_DECL(void) APICR3HvSetCompatMode(PVM pVM, bool FHyperVCompatMode);
#endif
// TODO:



#ifdef IN_RING3
VMMR3_INT_DECL(int) APICR3RegisterDevice(struct PDMDEVREGCB *pCallbacks);
VMMR3_INT_DECL(void) APICR3InitIpi(PVMCPU pVCpu);
VMMR3_INT_DECL(void) APICR3HVEnable(PVM pVM);
#endif 


RT_C_DECLS_END

#endif // header file protect